/* file.h */

 #ifndef __SYSTEM
 #include "kernel/system.h"
 #endif
#ifndef __FILE_H__
#define __FILE_H__

typedef unsigned long ssize_t;



u16 fread ( int fd, char *bufferSalida, int cantidad );
int open (char *nombre, char* modo);
int open_FAT12 (char *nombre, int fd);
int close (int fd);
int lseek (int fd, int offset, int donde);
//dword lseek (int fd, int offset, int donde);
//int cache_read( word *sector, unsigned int start, char *dstbuffer, unsigned int len);
#define SEEK_CUR    1
#define SEEK_SET    2
#define SEEK_END    3

#define DRIVE_0     0
#define FAT12       0

struct file
{
    byte device;        // Tipo de dispositivo donde se encuentra el archivo
    byte fs;            // tipo de filesystem
    dword sector_origen;// Sector donde comienza el archivo en el dispositivo device con filesystem fs
    dword sector_actual;
    dword offset;       // offset desde el comienzo del archivo
    dword offset_rel;   // offset desde el sector sobre el que esta parado
    dword sectores;     // cantidad de sectores totales
    dword size;
	char modoApertura[3];
}__attribute__((__packed__));



typedef struct file_opened_t
{
//    byte *bloque;
/*
    dword sector_actual;
    fat12_entry_ext_t datos;
    dword fd;               //File descriptor
    dword offset;           //Offset absoluto (al comienzo)
    dword offset_rel;       //Offset relativo al sector actual
    dword sectores;         //Cantidad de sectores que ocupa el archivo
    struct file_opened_t *next;
*/
struct file file_data;
char sysNombre[MAX_PATH_LEN];

}file_opened_t __attribute__((__packed__));



/**********************************fin casi file.h********************************************/

 #endif
